package com.xuedongzhilian.service;

import com.xuedongzhilian.dto.StudyPlanDTO;
import com.xuedongzhilian.entity.StudyPlan;

import java.util.List;

/**
 * <p>
 * 学习计划服务类
 * </p>
 *
 * @author 学动智联团队
 * @since 2025-10-14
 */
public interface IStudyPlanService {

    /**
     * 创建学习计划
     * @param studyPlanDTO 学习计划DTO
     * @return 是否创建成功
     */
    boolean createStudyPlan(StudyPlanDTO studyPlanDTO);

    /**
     * 获取用户的学习计划列表
     * @param userId 用户ID
     * @return 学习计划列表
     */
    List<StudyPlanDTO> getStudyPlansByUserId(Long userId);

    /**
     * 获取学习计划详情
     * @param planId 学习计划ID
     * @param userId 用户ID
     * @return 学习计划详情
     */
    StudyPlanDTO getStudyPlanDetail(Long planId, Long userId);

    /**
     * 更新学习计划
     * @param studyPlanDTO 学习计划DTO
     * @return 是否更新成功
     */
    boolean updateStudyPlan(StudyPlanDTO studyPlanDTO);

    /**
     * 删除学习计划
     * @param planId 学习计划ID
     * @param userId 用户ID
     * @return 是否删除成功
     */
    boolean deleteStudyPlan(Long planId, Long userId);

    /**
     * 完成学习计划
     * @param planId 学习计划ID
     * @param userId 用户ID
     * @return 是否完成成功
     */
    boolean completeStudyPlan(Long planId, Long userId);
}